home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / cbm / 543 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  9.2 KB

  1. Path: sdcc12.ucsd.edu!cs!galvarez
  2. From: galvarez@cs.ucsd.edu (Guillermo Alvarez)
  3. Newsgroups: comp.sys.cbm
  4. Subject: datapump.doc
  5. Date: 10 Jan 1996 19:42:51 GMT
  6. Organization: CSE Dept., U.C. San Diego
  7. Distribution: world
  8. Message-ID: <4d14rr$lgs@sdcc12.ucsd.edu>
  9. NNTP-Posting-Host: beowulf.ucsd.edu
  10.  
  11.  
  12. there seem to be problems with the .zip, so I'm    reposting...
  13.  
  14. ----------------------------------------------------------------------------   
  15. "DATAPUMP" THE 6551 ACIA CARD
  16.                      (C)opyright Perry M. Grodzinski, 1991
  17.  
  18. Note: You are free to give away these documents but not to sell! SWIFTLINK is a
  19. Trademark of CMD (Creative Micro Designs).
  20.  
  21. Although this project is very simple to construct, some electronic experience
  22. would be beneficial. The author takes no responsibility for this modification as
  23.  
  24. this project is to be done at the risk of the reader.
  25.  
  26. With the price of high speed modems quickly falling, home computer users can now
  27.  
  28. have 9600 bits per second modems for the price that 300 BPS once cost.
  29. Unfortunately, anything above 2400 BPS for the c64 is a problem, it just can't
  30. keep up. Most of the serial to parallel and other bit handling is done from the
  31. CIA 6526 chip and intensive code. Other Commodore's of the past like the
  32. SuperPET, B series, and +4, all used another means to achieve the serial
  33. conversion. By using an IC known as a UART (Universal Asynchronous Receiver
  34. Transmitter), These machines were able to handle a much higher bit rate than
  35. what can be achieved with a C64. The UART used is known as the R6551 ACIA
  36. (Asynchronous Communications Interface Adapter). It can also be noted that this
  37. is also the UART used in the CMD SWIFTLINKTM. The design presented here allows
  38. the C64 to communicate at speeds of up to 38,400 BPS. Although I have not tested
  39.  
  40. at the higher end speeds, I do use this design to communicate with my modem at
  41. 19,200 BPS without any problems. Purchasing a SWIFTLINK from a Canadian supplier
  42.  
  43. was a tad costly for me and was not going to challenge me as an electronic
  44. project so I decided to try to build a card around the 6551. Thus the DATAPUMP!
  45. After receiving the 6551 and specification sheets, I was very pleasantly
  46. surprised to see that this was going to be a breeze. It was as though the 6551
  47. was built for interfacing to the C64. No fancy interfacing was required at all.
  48. All that had to be done was Hook It UP! Looking further into the spec sheets I
  49. found that the maximum speed with the recommended crystal was 19,200 bits per
  50. second. Knowing that terminal programs like Fritzterm, and Novaterm had maximum
  51. speed settings of 38,400 BPS for use with Swiftlink, it quickly hit me that CMD
  52. was doubling the speed. I quickly looked through the parts catalog and found
  53. there to be a crystal of a standard speed exactly double of the frequency on the
  54.  
  55. spec sheet, so I ordered it. After getting my card built I found that indeed a
  56. double speed crystal was what was used in the design of the Swiftlink. By the
  57. way, for the record let me mention here and now, that my design, even though it
  58. may appear to be in some ways, is not a Swiftlink clone. That is to say I had
  59. never even seen what the case of one looked like, let alone the insides.
  60. Actually at the date of this writing, I still haven't seen a Swiftlink! Now with
  61.  
  62. the legality questions out of the way lets go  build a DATAPUMP!
  63.  
  64. The heart and soul of the DATAPUMP is of course the 6551. I used one
  65. manufactured by Rockwell. Again interfacing the 6551 to the C64 is very simple.
  66. The 6551 pinout is as follows :
  67.  
  68. Pin#  Label   Function                Pin#   Label   Function
  69. ----  -----  --------                 ----  -----  --------
  70.  1)    GND    Ground                   28)   R/W    Read/Write
  71.  2)    CS0    Chip Select High         27)   Ph2    Phase 2 clock
  72.  3)   /CS1    Chip Select Low          26)  /IRQ    Interrupt Request
  73.  4)   /RES    Reset                    25)   DB7    Data Bus 7
  74.  5)    RxC    Receive Clock            24)   DB6    Data Bus 6
  75.  6)    XTL1   Crystal leg              23)   DB5    Data Bus 5
  76.  7)    XTL2   Crystal leg              22)   DB4    Data Bus 4
  77.  8)   /RTS    Request To Send          21)   DB3    Data Bus 3
  78.  9)   /CTS    Clear To Send            20)   DB2    Data Bus 2
  79.  10)   TxD    Transmit Data            19)   DB1    Data Bus 1
  80.  11)  /DTR    Data Terminal Ready      18)   DB0    Data Bus 0
  81.  12)   RxD    Receive Data             17)  /DSR    Data Set Ready
  82.  13)   RS0    Register Select Bit 0    16)  /DCD    Data Carrier Detect
  83.  14)   RS1    Register Select Bit 1    15)   Vcc   +5 Volt
  84.  
  85. I'll further explain some of these pins and their functions. To select the chip
  86. (to read/write to it) CS0 must be high and CS1 must be low. So we'll use I/O1 to
  87.  
  88. select the chip as it is active low. We tie CS0 permanently high and toggle the
  89. chip by changing I/O1. I/O1 goes low whenever a read or write to $DExx takes
  90. place. Note that you can use I/O2 here and map the 6551 to $DFxx if you wish,
  91. but be aware that this will put the 6551 in conflict with a REU. /RES could be
  92. tied to the/reset signal coming from the C64, I chose not to do this for my
  93. purpose as I can do a hard reset from my C64, do whatever such as load a
  94. different communications package and be back without resetting my 6551 which
  95. would cause my modem to disconnect. I leave this up to you but make sure this
  96. line if pulled up via R1 even if you connect your 64 /res here. A0 and A1
  97. connected to RS0 and RS1 allow the registers of the 6551 to be selected from
  98. $DE00 through to $DE03. R2 through R4 must be inplace to cause the conditions to
  99.  
  100. be true on CTS, DCD, and DSR, when no modem is connected to the the 6551. If
  101. these states are not true the 6551 can generate interrupts that if not properly
  102. handled with software can cause the C64 to hang rudely. Pins 10,11,12,15,16,17
  103. and gnd, all make up the RS232C serial output. To follow the RS232C voltage
  104. standards I used the common 1488 RS232 driver and the 1489 receiver. The only
  105. hassle is with the fact that the 1488 requires two 9 - 15 volt power supplies.
  106. One supply ties its negative to ground and positive to pin 14 of the 1488. The
  107. other supply has its positive side tied to ground and its negative side
  108. connected to pin 1 of the 1488. To acquire the two 12 volt supplies, I used a +5
  109.  
  110. volt to +/- 12 volt dc to dc converter made by a firm called Astec. I removed
  111. this converter from an old junk board that was a serial card for a Radio Shack
  112. TRS-80 Model 1 micro. If you have problems finding such a part, there are many
  113. alternatives to achieving these voltages. You could steal the 9v ac supply off
  114. of the user port and through a network of diodes and capacitors create two 9v dc
  115.  
  116. supplies. Another would be to use an external center tap 24 volt transformer and
  117.  
  118. create two  12 volt dc supplies. To get by you could also simply use two 9 volt
  119. batteries. The reason I chose the converter was that I could then build the
  120. entire DATAPUMP, power and all on one card and use the 5v coming from the C64.
  121. C1 through to C7 and L1 and L2 are simply used for filtering on the converter.
  122.  
  123. Construction is very easy and no previous training in rocket science is
  124. necessary. however basic knowledge in electronics and soldering would be an
  125. asset. The entire project is built on a single card plugged into the expansion
  126. port of the C64. I used a Radio Shack part 276-192. It is a 72-position plug-in
  127. board with .100" contact centers. US friends should check the RS numbers as I am
  128.  
  129. unsure if Radio Shack uses the same part numbers in the US as they do in Canada.
  130.  
  131. The card edge must be carefully cut down of course to match the 44 pin expansion
  132.  
  133. port female on the back of the C64. Once this is done you now have a large 4.5"
  134. X 5.7" card to add more than the DATAPUMP if you wish. On my card, I have the
  135. DATAPUMP project, a couple of eproms, and another female 44 pin for my REU, and
  136. a few other goodies. I used sockets on all the IC's except for the DC-DC
  137. converter. On my external cards I always use single core copper telephone wire
  138. for circuit trace connections, and never have problems with noise.
  139.  
  140. I hope you enjoy this project as much as i did. I know you'll love the the
  141. ability to really cruise at 19,200 BPS. To date I have found few terminal
  142. programs that could really make the card hum. Terminal 1 is one terminal package
  143.  
  144. that works very well. Fritzterm also flys  along and keeps the C64 right up to
  145. snuff with the 6551. Novaterm 9.3 also supports the 6551 but becomes
  146. undependable at speeds higher than 2400. I mentioned this to the author so maybe
  147.  
  148. we'll see this in his next release. Although this interface was designed for the
  149.  
  150. C64 It could easily be adapted to the 128 as well. Of course, from what I
  151. understand, on the 128, a 6551 is not required unless the user wishes to
  152. transceive at speeds higher than 9600 BPS.
  153.  
  154. If you  have any questions comments or suggestions, please contact me at :
  155.  
  156. Perry Grodzinski
  157. 30 Fyfe Street
  158. Regina, Sask. Canada
  159. S4X-1J8
  160.  
  161.  
  162.  
  163. I also hang out on the CBM Echo and can be reached there.
  164. GOD BLESS !
  165.  
  166.  
  167. --------------------------------------------------------------------------------
  168.  
  169. Translators note:  the original DATAPUMP instructions were in geoWrite (this
  170. document) and geoPaint (the circuit itself).  This document has been translated
  171. into straight ASCII, and the circuit is now in DATAPUMP.MAC, a MacPaint file,
  172. which can be printed out using almost any MacPaint to 64 utility.
  173.  
  174.  
  175.